package org.soulraven.games.memory.engine;

import java.util.List;

import org.soulraven.games.memory.model.Game;
import org.soulraven.games.memory.model.Player;
import org.soulraven.games.memory.ui.game.controller.SelectionController;

public interface MemoryEngine {

	void start(final Game game, final List<Player> players);

	void pairShown(final boolean match);

	void disableAllCards();

	void enableAllSelectableCards();

	void matchesFound();

	void matchesNotFound();

	Player getCurrentPlayer();

	SelectionController getSelectionController();

	void processEndGame();

	void computeNewScore(final Player player);
}
